﻿/*
创建人：zhangrj
日期：2023-02-09
描述：热表订单批次创建弹窗页面js
*/
var page = {
    url: getRootPath() + "/Ashx/ReBiaoConainer/RbOrderContainerStartHandler.ashx", //后台处理url,
    init: function () {
        page.bind();
        page.initPageData();
    },
    //绑定事件
    bind: function () {
        //机型列表
        $("#gdProductFamily").datagrid({
            columns: [[
             { field: 'ck', title: '选择', width: 20, checkbox: true },
		         { field: 'PRODUCTFAMILYNAME', title: '机型', width: 150 }
                ]]
        });
        //选择热表批次类型
        $("#ddlRbType").combobox({
            onChange: function (n, o) {
                page.getContainerNo();
                //                //默认工区
                //                var workcenters = $("#dllWorkCenter").combobox('getData');
                //                var userCustomWC = page.rbTypeAndWorkcenter[n]; //用户自定义批次类型对应的工区
                //                var selectItem = workcenters.filter(function (e) {
                //                    return e.WORKCENTERNAME.indexOf(userCustomWC) != -1;
                //                });
                //                if (selectItem.length > 0) {
                //                    $("#dllWorkCenter").combobox('select', selectItem[0].WORKCENTERID);
                //                }
            }
        });
        //大批次号更改事件
        $('#txtRbTogetherflag').textbox({
            onChange: function (n, o) {
                page.getContainerNo2();
            }
        });
        //开卡并继续
        $("#btnStart").on("click", function () {
            page.save(1);
        });
        //开卡并关闭
        $("#btnStartAndClosed").on("click", function () {
            page.save(2);
        });
        //关闭
        $("#btnClose").on("click", function () {
            //            parent.window.close();
            window.parent.jQuery("#dg").dialog("close");
        });
    },
    //初始化页面数据
    initPageData: function () {
        clearMessage();
        var orderName = decodeURI(getParam("orderName"));
        var productID = getParam("productID");
        var orderShipID = getParam("orderShipID"); //采购订单转工ID（采购订单开卡处跳转参数，如果是月计划订单开卡则没有该参数）
        if (isNullOrWhiteSpaceStr(orderName) || isNullOrWhiteSpaceStr(productID)) {
            displayMessage("数据丢失", false);
            return;
        }
        var formData = {
            action: "InitPageData",
            orderName: orderName,
            productID: productID,
            orderShipID: orderShipID
        };
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            $("#hdOrderName").val(orderName);
            $("#hdOrderShipID").val(orderShipID);
            page.bindPageData(res.DBDataSet, productID);
        });
    },
    //绑定页面数据
    bindPageData: function (datas, productID) {
        $("#txtStartDate").datebox("setValue", datas.dtOrder[0].PLANNEDSTARTDATE); //计划开始日期
        $("#txtCompletionDate").datebox("setValue", datas.dtOrder[0].PLANNEDCOMPLETIONDATE); //计划完成日期
        $("#txtQty").numberbox("setValue", datas.dtOrder[0].QTY); //剩余可开卡数
        if (datas.dtOrderShip !== undefined) {
            $("#txtEntrustContainer").textbox("setValue", datas.dtOrderShip[0].SUPPLIERCONTAINERNAME); //委托批次
            $("#txtEntrustUnit").textbox("setValue", datas.dtOrderShip[0].SUPPLIERNAME); //委托单位
            $("#txtQty").numberbox("readonly",true);
        }
        //件号
        $("#selProductNo").combobox({
            valueField: 'PRODUCTID',
            textField: 'PRODUCTNAME',
            panelHeight: 200,
            data: datas.subSectionProductDt, //下拉数据
            value: productID, //默认值
            onSelect: function (record) {
                //清除批次数据
                $("#txtRbTogetherflag").textbox('clear');
                $("#txtProductPrefix").textbox('clear');
                $("#txtContainerNo").textbox('clear');
                page.bindWorkFlowListDatas(record.PRODUCTNAME);
            }
        });
        //        //工艺路线
        //        $("#selWorkflowName").combobox({
        //            valueField: 'WORKFLOWID',
        //            textField: 'WORKFLOWNAME',
        //            panelHeight: 200,
        //            data: datas.sectionWorkFlowDt, //下拉数据
        //            value: datas.sectionWorkFlowDt[0].WORKFLOWID, //默认值
        //            onSelect: function (record) {
        //                page.bindStepListDatas(record.WORKFLOWID);
        //            }
        //        });
        //主制工区
        $("#selWorkCenter").combobox({
            valueField: 'WORKCENTERID',
            textField: 'WORKCENTERNAME',
            panelHeight: 200,
            data: datas.sectionWcDt, //下拉数据
            onSelect: function (record) { //下拉时动态获取班组
                page.post(page.url, { action: "GetTeams", workcenterID: record.WORKCENTERID }, true, function (res) {
                    //主制班组
                    $("#selTeam").combobox('clear');
                    $("#selTeam").combobox({
                        valueField: 'TEAMNAME',
                        textField: 'TEAMNAME',
                        data: res.DBTable //下拉数据
                    });
                });
            }
        });
        //        //工艺员
        //        $("#selTechnique").combobox({
        //            valueField: 'EMPLOYEENAME',
        //            textField: 'FULLNAME',
        //            data: datas.sectionEmployDt //下拉数据
        //        });
        //单位
        $("#selUOMField").combobox({
            valueField: 'UOMID',
            textField: 'UOMNAME',
            panelHeight: 200,
            data: datas.sectionUOMDt, //下拉数据
            onLoadSuccess: function () { //加载数据成功后
                for (var i = 0; i < datas.sectionUOMDt.length; i++) {
                    if (datas.sectionUOMDt[i].UOMNAME == "件") {
                        $('#selUOMField').combobox('setValue', datas.sectionUOMDt[i].UOMID);
                    }
                }
            }
        });
        //机型下拉框
        $("#selfamilyType").combobox({
            valueField: 'FamilyTypeId',
            textField: 'FamilyTypeName',
            panelHeight: 200,
            data: [{ FamilyTypeId: "1", FamilyTypeName: "批产" }, { FamilyTypeId: "2", FamilyTypeName: "主研" }, { FamilyTypeId: "3", FamilyTypeName: "参研" }, { FamilyTypeId: "4", FamilyTypeName: "修理"}], //下拉数据
            value: "1", //默认值
            onSelect: function (record) { //下拉时动态获取数据
                page.post(page.url, { action: "GetProductFamily", FamilyType: record.FamilyTypeId }, true, function (res) {
                    $("#gdProductFamily").datagrid('loadData', { rows: res.DBTable });
                });
            }
        });
    },
    //动态绑定工艺下拉列表
    bindWorkFlowListDatas: function (productName) {
        clearMessage();
        page.post(page.url, { action: "GetWorkFlowListDatas", productName: productName }, true, function (res) {
            if (res.Result) {
                $("#selWorkflowName").combo('clear');
                $("#selWorkflowName").combobox({
                    valueField: 'WORKFLOWID',
                    textField: 'WORKFLOWNAME',
                    panelHeight: 200,
                    data: res.DBTable, //下拉数据
                    value: res.DBTable[0].WorkflowID, //默认值
                    onSelect: function (record) {
                        page.bindStepListDatas(record.WORKFLOWID);
                    }
                });
            }
            else {
                $("#selWorkflowName").combo('clear');
                $("#selWorkflowName").combo("panel").empty();
                $("#selStartWorkflowStep").combo('clear');
                $("#selStartWorkflowStep").combo("panel").empty();
                displayMessage(res.Message, false);
            }
        });
    },
    //动态绑定工序下拉列表
    bindStepListDatas: function (workflowId) {
        clearMessage();
        page.post(page.url, { action: "GetStepListDatas", workFlowID: workflowId }, true, function (res) {
            //开始工序
            if (res.Result) {
                $("#selStartWorkflowStep").combo('clear');
                $("#selStartWorkflowStep").combobox({
                    valueField: 'WORKFLOWSTEPID',
                    textField: 'WORKFLOWSTEPNAME',
                    panelHeight: 200,
                    data: res.DBTable, //下拉数据
                    value: res.DBTable[0].WORKFLOWSTEPID //默认值
                });
            }
            else {
                $("#selStartWorkflowStep").combo('clear');
                $("#selStartWorkflowStep").combo("panel").empty();
                displayMessage(res.Message, false);
            }
        });
    },
    //获取批次号，大批次号和批次号一起更新
    getContainerNo: function () {
        //清除数据
        clearMessage();
        $("#txtRbTogetherflag").textbox('clear');
        $("#txtProductPrefix").textbox('clear');
        $("#txtContainerNo").textbox('clear');
        var rbType = $('#ddlRbType').combobox('getValue');
        var product = $("#selProductNo").combobox('getText');
        if (isNullOrWhiteSpaceStr(rbType)) {
            return;
        }
        //获取最新的批次号
        page.post(page.url, { action: "GetNewContainerNo", product: product, rbType: rbType }, true, function (res) {
            if (!res.Result) {
                displayMessage(result.Message, false);
                return;
            }
            $("#txtProductPrefix").textbox('setValue', res.ReturnData.RbContainerPrefix);
            $("#txtRbTogetherflag").textbox('setValue', res.ReturnData.RbTogetherflag);
            $("#txtContainerNo").textbox('setValue', res.ReturnData.RbContainerNo);
        });
    },
    //获取批次号(通过大批次变更)
    getContainerNo2: function () {
        //清除数据
        clearMessage();
        $("#txtContainerNo").textbox('clear');
        var rbTogetherflag = $('#txtRbTogetherflag').textbox('getValue');
        var prefix = $("#txtProductPrefix").textbox('getValue');
        if (isNullOrWhiteSpaceStr(rbTogetherflag) || isNullOrWhiteSpaceStr(prefix)) {
            return;
        }
        //获取最新的批次号
        page.post(page.url, { action: "GetNewContainerNo2", prefix: prefix, rbTogetherflag: rbTogetherflag }, true, function (res) {
            if (!res.Result) {
                displayMessage(result.Message, false);
                return;
            }
            $("#txtContainerNo").textbox('setValue', res.ReturnData);
        });
    },
    //创建批次(1：开卡并继续，2：开卡并关闭)
    save: function (btype) {
        clearMessage();
        $("body").find(".easyui-linkbutton").each(function () {
            $(this).linkbutton('disable'); //禁用按钮
        });
        var resData = page.isValidData();
        if (!resData.res) {
            displayMessage(resData.mes, false);
            $("body").find(".easyui-linkbutton").each(function () {
                $(this).linkbutton('enable'); //启用按钮
            });
            return;
        }
        page.post(page.url, { action: "CreateRbContainerInfo", params: JSON.stringify([resData.datas]), famliyDatas: JSON.stringify(resData.famliyDatas) }, true, function (res) {
            if (res.Result) {
                if (btype == "2") {
                    //parent.window.returnValue = res.Message;
                    //parent.window.close();
                    window.parent.jQuery("#dg").dialog("close");
                    return;
                }
                page.clearPage();
            }
            displayMessage(res.Message, res.Result);
            $("body").find(".easyui-linkbutton").each(function () {
                $(this).linkbutton('enable'); //启用按钮
            });
        });
    },
    //验证填写数据
    isValidData: function () {
        var resObj = { res: false, mes: "", datas: {} };
        resObj.datas.orderName = $("#hdOrderName").val();
        resObj.datas.orderShipID = $("#hdOrderShipID").val();
        resObj.datas.rbType = $('#ddlRbType').combobox('getValue');
        resObj.datas.militaryType = $("#selMilitaryType").combobox('getValue'); //客户类型，不需要验证必填
        resObj.datas.productID = $("#selProductNo").combobox('getValue'); //件号ID
        resObj.datas.productName = $("#selProductNo").combobox('getText'); //件号名
        if (isNullOrWhiteSpaceStr(resObj.datas.productID)) {
            resObj.mes = "未选择件号";
            return resObj;
        }
        resObj.datas.WorkflowID = $("#selWorkflowName").combobox('getValue'); //工艺路线ID
        resObj.datas.WorkflowName = $("#selWorkflowName").combobox('getText'); //工艺路线名
        if (isNullOrWhiteSpaceStr(resObj.datas.WorkflowID)) {
            resObj.mes = "未选择工艺路线";
            return resObj;
        }
        resObj.datas.startWorkflowStep = $("#selStartWorkflowStep").combobox('getValue'); //开始工序
        resObj.datas.startWorkflowStepName = $("#selStartWorkflowStep").combobox('getText'); //开始工序名
        if (isNullOrWhiteSpaceStr(resObj.datas.startWorkflowStep)) {
            resObj.mes = "未选择开始工序";
            return resObj;
        }
        resObj.datas.workCenter = $("#selWorkCenter").combobox('getValue'); //主制工区
        resObj.datas.workCenterName = $("#selWorkCenter").combobox('getText'); //主制工区名
        if (isNullOrWhiteSpaceStr(resObj.datas.workCenter)) {
            resObj.mes = "未选择主制工区";
            return resObj;
        }
        resObj.datas.team = $("#selTeam").combobox('getValue'); //主制班组
        resObj.datas.teamName = $("#selTeam").combobox('getText'); //主制班组名
        //        resObj.datas.technique = $("#selTechnique").combobox('getValue'); //工艺员
        //        resObj.datas.techniqueName = $("#selTechnique").combobox('getText'); //工艺员名
        //        if (isNullOrWhiteSpaceStr(resObj.datas.technique)) {
        //            resObj.mes = "未选择工艺员";
        //            return resObj;
        //        }
        resObj.datas.entrustUnit = $('#txtEntrustUnit').textbox('getValue'); //委托单位
        if (isNullOrWhiteSpaceStr(resObj.datas.entrustUnit)) {
            resObj.mes = "未填写委托批次";
            return resObj;
        }
        resObj.datas.entrustContainer = $('#txtEntrustContainer').textbox('getValue'); //委托批次
        if (isNullOrWhiteSpaceStr(resObj.datas.entrustContainer)) {
            resObj.mes = "未填写委托批次";
            return resObj;
        }
        resObj.datas.containerQty = $('#txtQty').numberbox('getValue'); //批次数量
        if (isNullOrWhiteSpaceStr(resObj.datas.containerQty)) {
            resObj.mes = "未填写批次数量";
            return resObj;
        }
        resObj.datas.uOMField = $("#selUOMField").combobox('getValue'); //单位
        resObj.datas.uOMFieldName = $("#selUOMField").combobox('getText'); //单位名
        if (isNullOrWhiteSpaceStr(resObj.datas.uOMField)) {
            resObj.mes = "未选择单位";
            return resObj;
        }
        resObj.datas.containerComments = $("#txtRemark").textbox('getText'); //备注
        resObj.datas.startDate = $("#txtStartDate").datebox('getValue'); //开始日期
        if (isNullOrWhiteSpaceStr(resObj.datas.startDate)) {
            resObj.mes = "未选择开始日期";
            return resObj;
        }
        resObj.datas.completionDate = $("#txtCompletionDate").datebox('getValue'); //结束日期
        if (isNullOrWhiteSpaceStr(resObj.datas.completionDate)) {
            resObj.mes = "未选择结束日期";
            return resObj;
        }
        var famliyrow = $("#gdProductFamily").datagrid('getChecked'); //机型
        if (famliyrow.length == 0) {
            resObj.mes = "未选择机型";
            return resObj;
        }
        resObj.famliyDatas = famliyrow;

        //批次号处理
        resObj.datas.productPrefix = $.trim($('#txtProductPrefix').textbox('getValue'));
        if (isNullOrWhiteSpaceStr(resObj.datas.productPrefix)) {
            resObj.mes = "未填写批次号前部分";
            return resObj;
        }
        resObj.datas.containerNo = $.trim($('#txtContainerNo').textbox('getValue'));
        if (isNullOrWhiteSpaceStr(resObj.datas.containerNo)) {
            resObj.mes = "未填写批次号";
            return resObj;
        }
        resObj.datas.togetherflag = $.trim($('#txtRbTogetherflag').textbox('getValue'));
        if (isNullOrWhiteSpaceStr(resObj.datas.togetherflag)) {
            resObj.mes = "未填写大批次号";
            return resObj;
        }
        resObj.res = true;
        return resObj;
    },
    //清空页面
    clearPage: function () {
        clearMessage();
        $("#selWorkCenter").combobox('setValue', ""); //工区
        $("#selTeam").combobox('setValue', ""); //班组
        //        $("#selTechnique").combobox('setValue', ""); //工艺员
        $("#selUOMField").combobox('setValue', ""); //单位
        $("#selMilitaryType").combobox('setValue', ""); //客户类型
        $("#txtProductPrefix").textbox("clear"); //前缀
        $("#txtContainerNo").textbox("clear"); //批次号
        $("#ddlRbType").combobox("setValue", ""); //热处理类型选择
        $("#txtRbTogetherflag").textbox("clear"); //大批次号
        $("#gdProductFamily").datagrid('uncheckAll'); //机型列表
        $("#txtRemark").textbox('setValue', ""); //备注
        $("#txtQty").numberbox('setValue', ""); //批次数量
    },
    //post数据（路径，参数，是否异步，成功返回方法）
    post: function (url, param, async, callback) {
        $.ajax({
            type: "Post",
            url: url,
            data: param,
            cashe: false,
            async: async,
            dataType: "json",
            beforeSend: function () {
                $.messager.progress({ text: '', msg: '处理中...' });
            },
            success: function (data) {
                $.messager.progress('close');
                callback(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.progress('close');
                displayMessage(XMLHttpRequest.responseText, false);
                $("body").find(".easyui-linkbutton").each(function () {
                    $(this).linkbutton('enable'); //启用按钮
                });
            }
        });
    }
}
page.init();